<template>
  <header class="header">
    <h1>todos</h1>
    <input id="toggle-all" class="toggle-all" type="checkbox" v-model="isAll"/>
    <label for="toggle-all"></label>
    <!-- 为输入框添加双向绑定和keyup事件-->
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      v-model.trim="task"
      @keydown.enter="addFn"
    />
  </header>
</template>

<script>
export default {
  data() {
    return {
      task: '',
    }
  },
  props:{
    list:{
      type:Array,
      required:true,
    }
  },
  methods: {
    // 添加任务方法 子向父通信
    addFn() {
      if(this.task){
        this.$emit('add', this.task)
        this.task=''
      }else return alert('请输入内容再按回车键哦')
    },
  },
  computed:{
    // 计算属性完成全选反选效果
    isAll:{
      get(){
        return this.list.every(item=>item.isDone)
      },
      // 点击全选键时同步更改list中所有元素的isDone 子向父通信
      set(val){
        this.$emit('isAll',val)
      }

    }
  }
}
</script>
